<?php
/**
 * 目录函数文件
 */
/**
 * 读取目录下的信息返回
 * @method read_directory
 * @param  string         $path 目标目录
 * @return mixed               false|array 
 */
function read_directory(string $path){  
    if(!is_dir($path)){    
        return false;
    }  
    $info=[];  
    $handle=opendir($path);  
    while(($item=@readdir($handle))!==false){    
        if($item!='.'&&$item!='..'){      
            $filePath=$path.DIRECTORY_SEPARATOR.$item;      
            $info['fileName']=$filePath;      
            $info['showName']=$item;      
            $info['readable']=is_readable($filePath)?true:false;    
            $info['writable']=is_writable($filePath)?true:false;     
            $info['executable']=is_executable($filePath)?true:false; 
            $info['atime']=date('Y/m/d H:i:s',fileatime($filePath)); 
            if(is_file($filePath)){        
                $arr['file'][]=$info;
            }      
            if(is_dir($filePath)){        
                $arr['dir'][]=$info;
            }
        }
    }  
    closedir($handle);  
    return $arr;
}
/**
 * 创建目录
 * @method create_dir
 * @param  string     $path 目录名称
 * @return mixed          true|string 
 */
function create_dir(string $path){  
    if(is_dir($path)){    
        return $path.'当前目录已存在同名文件';
    }  
    if(!mkdir($path,755,true)){    
        return $path.'目录创建失败';
    }  
    return true;
}
/**
 * 重命名目录
 * @method rename_dir
 * @param  string     $oldName 原目录
 * @param  string     $newName 新名称
 * @return mixed              string|true 
 */
function rename_dir(string $oldName,string $newName){  
    if(!is_dir($oldName)){    
        return '原目录不存在';
    }  
    if(is_dir($newName)){    
        return '当前目录下存在同名文件';
    }  
    if(!rename($oldName,$newName)){    
        return '重命名失败';
    }  
    return true;
}
/**
 * 删除目录
 * @method del_dir
 * @param  string  $path 目录名称
 * @return mixed        true|string 
 */
function del_dir(string $path){  
    if(!is_dir($path)){    
        return '目录不存在';
    }  
    $handle=opendir($path);  
    while(($item=@readdir($handle))!==false){    
        if($item!='.'&&$item!='..'){      
            $pathName=$path.DIRECTORY_SEPARATOR.$item;      
            if(is_file($pathName)){
                @unlink($pathName);
            }      
            if(is_dir($pathName)){        
                $func=__FUNCTION__;        
                $func($pathName);
            }
        }
    }  
    closedir($handle);  
    rmdir($path);  
    return true;
}